#include <iostream>

using namespace std;

// 可变参数包

// template<class ...Args>
// void ShowList(Args ...args){
//   cout << sizeof...(args) << endl;
// }

// int main() {
//   ShowList(4, 2.145, 'w', "hello",6);
//   // cout << "hello world" << endl;
//   return 0;
// }

// //==========================
// void ShowList() { cout << endl; }

// template <class T, class... Args>
// void ShowList(const T& value, Args... args) {
//   cout << value << " ";
//   ShowList(args...);
// }

// int main() {
//   ShowList();
//   ShowList(1, 4, 2.145, 'w', "hello", 6);
//   // cout << "hello world" << endl;
//   return 0;
// }

//==========================

// template <class T>
// void PrintArg(T t) {
//   cout << t << endl;
// }
// template <class T, class... Args>
// void ShowList(const T& value, Args... args) {
//   // int arr[] = {(PrintArg(args), 0)...};  // 利用初始化列表来初始化数组
//   int arr[] = {(5, 0)};
//   cout << endl;
//   cout << sizeof arr /sizeof(int)<< endl;
// }

// int main() {
//   ShowList(1, 4, 2.145, 'w', "hello", 6);
//   // cout << "hello world" << endl;
//   return 0;
// }


//-----------------------------

